// pages/emotion/emotion.js
const api = require('../../utils/api.js');

Page({
  data: {
    selectedEmotion: '', // 当前选中的情绪
    currentEmotions: [], // 当前情绪分类下的详细情绪列表
    content: '', // 记录内容
    canSubmit: false, // 是否可以提交
    emotionMap: {
      '兴奋': ['兴奋', '满足', '开心', '高兴'],
      '自信': ['自信', '平静', '愉悦'],
      '焦虑': ['焦虑', '悲伤', '内疚', '共情'],
      '愤怒': ['愤怒', '恐惧', '失望']
    }
  },

  onLoad: function (options) {
    this.checkSubmitStatus();
  },

  // 选择情绪
  selectEmotion: function (e) {
    const emotion = e.currentTarget.dataset.emotion;
    
    // 检查是否是情绪分类（兴奋、自信、焦虑、愤怒）
    if (this.data.emotionMap[emotion]) {
      // 点击的是情绪分类，显示详细情绪列表
      this.setData({
        selectedEmotion: emotion,
        currentEmotions: this.data.emotionMap[emotion] || []
      });
    } else {
      // 点击的是具体情绪，直接选中
      this.setData({
        selectedEmotion: emotion,
        currentEmotions: this.data.currentEmotions // 保持当前列表不变
      });
    }
    
    this.checkSubmitStatus();
  },

  // 内容输入
  onContentInput: function (e) {
    this.setData({
      content: e.detail.value
    });
    this.checkSubmitStatus();
  },

  // 检查是否可以提交
  checkSubmitStatus: function () {
    const canSubmit = this.data.selectedEmotion && this.data.content.trim().length > 0;
    console.log('检查提交状态:', {
      selectedEmotion: this.data.selectedEmotion,
      contentLength: this.data.content.trim().length,
      canSubmit: canSubmit
    });
    this.setData({
      canSubmit: canSubmit
    });
  },

  // 提交记录
  submitRecord: function () {
    console.log('提交按钮被点击');
    console.log('当前数据:', this.data);
    
    if (!this.data.canSubmit) {
      console.log('表单验证失败，无法提交');
      return;
    }

    const that = this;
    
    // 显示加载提示
    wx.showLoading({
      title: '提交中...',
      mask: true
    });

    // 构建请求数据
    const requestData = {
      emotion: this.data.selectedEmotion,
      content: this.data.content.trim(),
      image_url: '' // 暂时设为空字符串
    };

    console.log('发送请求数据:', requestData);

    // 使用API.js中的request方法
    api.request({
      url: '/api/emotion/upload',
      method: 'POST',
      data: requestData
    }).then(res => {
      wx.hideLoading();
      console.log('请求成功:', res);
      
      if (res.code === 200) {
        // 提交成功
        wx.showToast({
          title: '记录提交成功',
          icon: 'success',
          duration: 2000
        });

        // 显示AI反馈
        if (res.data && res.data.ai_response) {
          setTimeout(() => {
            wx.showModal({
              title: '小建议',
              content: res.data.ai_response,
              showCancel: false,
              confirmText: '知道了'
            });
          }, 1000);
        }

        // 重置表单
        that.resetForm();
        
      } else {
        // 提交失败
        wx.showToast({
          title: res.msg || '提交失败',
          icon: 'none'
        });
      }
    }).catch(err => {
      wx.hideLoading();
      console.error('提交失败:', err);
      wx.showToast({
        title: '网络错误，请重试',
        icon: 'none'
      });
    });
  },

  // 重置表单
  resetForm: function () {
    this.setData({
      selectedEmotion: '',
      currentEmotions: [],
      content: '',
      canSubmit: false
    });
  },

  // 页面显示
  onShow: function () {
    // 检查登录状态
    const token = api.getAccessToken();
    if (!token) {
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      });
      setTimeout(() => {
        wx.navigateTo({
          url: '/pages/login/login'
        });
      }, 1500);
    }
  },

  onShareAppMessage: function () {
    return {
      title: '记录每一天的心情',
      path: '/pages/emotion/emotion',
      imageUrl: '/images/share/emotion-share.png'
    };
  }
});